Реактивный SQL с jOOQ 3.15 и R2DBC

Одна из самых больших новых функций недавно выпущенного jOOQ 3.15 — это поддержка реактивных запросов с помощью R2DBC. Это был очень популярный запрос функциональности, и мы наконец его выполнили.

Вы можете продолжать использовать jOOQ так, как вы привыкли, обеспечивая типобезопасный SQL, встроенный в Java, kotlin или scala, но выполнение ваших запросов больше не блокируется. Вместо этого ваш jOOQ ResultQuery или Query может использоваться как Publisher<R> или Publisher<Integer> в реализации reactive-streams (реактивных потоков) по вашему выбору.

Вместо (или в дополнение к) настройки вашего jOOQ DSLContext с помощью JDBC java.sql.Connection или javax.sql.DataSource просто настройте его с помощью R2DBC io.r2dbc.spi.Connection или io.r2dbc.spi.ConnectionFactory:

ConnectionFactory connectionFactory = ConnectionFactories.get(     ConnectionFactoryOptions         .parse("r2dbc:h2:file://localhost/~/r2dbc-test")         .mutate()         .option(ConnectionFactoryOptions.USER, "sa")   

Читать далее